package com.ushine.web.component.task.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ushine.web.component.page.PageRequestQuery;
import com.ushine.web.component.task.model.AsyncTaskInfoDO;

/**
 * @Author: yls
 * @Date: 2022/02/21 11:59
 * @Description: 异步任务调度管理
 * @Version 1.0
 */
public interface IAsyncTaskService extends IService<AsyncTaskInfoDO> {

    /**
     * 功能描述:
     * 〈 添加异步任务 〉
     *
     * @param asyncTaskInfoDO 异步任务管理实体
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2022/02/21 12:01
     */
    Boolean insertAsyncTask(AsyncTaskInfoDO asyncTaskInfoDO);

    /**
     * 功能描述:
     * 〈修改异步任务〉
     *
     * @param asyncTaskInfoDO 异步任务管理实体
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2022/02/21 12:01
     */
    Boolean updateAsyncTask(AsyncTaskInfoDO asyncTaskInfoDO);

    /**
     * 功能描述:
     * 〈分页查询〉
     *
     * @param pageRequestQuery 分页查询条件
     * @return : java.util.List<com.ushine.web.component.task.model.AsyncTaskInfoDO>
     * @author : yls
     * @date : 2022/02/21 12:02
     */
    Page<AsyncTaskInfoDO> listAsyncTaskInfos(PageRequestQuery<AsyncTaskInfoDO> pageRequestQuery);

    /**
     * 功能描述:
     * 〈 根据任务id获取对应的任务信息 〉
     *
     * @param id 任务id
     * @return : com.ushine.web.component.task.model.AsyncTaskInfoDO
     * @author : yls
     * @date : 2022/02/21 13:45
     */
    AsyncTaskInfoDO getAsyncTaskInfoById(Long id);
}
